package it.csi.finregio.finreges.junit.integration;

import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang.StringUtils;

import it.csi.finregio.finreges.dto.Classificazione;
import it.csi.finregio.finreges.dto.Direzione;
import it.csi.finregio.finreges.dto.Ente;
import it.csi.finregio.finreges.dto.Settore;
import it.csi.finregio.finreges.dto.SottoClassificazione;
import it.csi.finregio.finreges.dto.TipoRiferimento;
import junit.framework.TestCase;

public class ManutenzioneTabelleServiceTest extends TestCase {

	public void testInsertClassificazione() throws Exception {
		Classificazione classificazione = new Classificazione();
		classificazione.setDescrizione(RandomStringUtils.randomAlphabetic(10));
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.insertClassificazione(classificazione);
	}

	public void testUpdateClassificazione() throws Exception {
		Classificazione classificazione = new Classificazione();
		classificazione.setDescrizione(RandomStringUtils.randomAlphabetic(10));
		classificazione.setIdClassificazione("33");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.updateClassificazione(classificazione);
	}

	public void testDeleteClassificazione() throws Exception {
		Classificazione classificazione = new Classificazione();
		classificazione.setIdClassificazione("33");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.deleteClassificazione(classificazione);
	}

	public void testInsertSottoClassificazione() throws Exception {
		Classificazione classificazione = new Classificazione();
		classificazione.setIdClassificazione("5");

		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		SottoClassificazione sottoClassificazione = new SottoClassificazione();
		sottoClassificazione.setClassificazione(classificazione);
		sottoClassificazione.setDescrizione(RandomStringUtils
				.randomAlphabetic(20));
		s.insertSottoClassificazione(sottoClassificazione);
	}

	public void testUpdateSottoClassificazione() throws Exception {
		Classificazione classificazione = new Classificazione();
		classificazione.setIdClassificazione("9");

		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		SottoClassificazione sottoClassificazione = new SottoClassificazione();
		sottoClassificazione.setIdSottoClassificazione("17");
		sottoClassificazione.setClassificazione(classificazione);
		sottoClassificazione.setDescrizione(RandomStringUtils
				.randomAlphabetic(20));
		s.updateSottoClassificazione(sottoClassificazione);
	}

	public void testDeleteSottoClassificazione() throws Exception {

		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		SottoClassificazione sottoClassificazione = new SottoClassificazione();
		sottoClassificazione.setIdSottoClassificazione("17");
		s.deleteSottoClassificazione(sottoClassificazione);
	}

	public void testInsertEnte() throws Exception {
		Ente ente = new Ente();
		ente.setDescrizione(RandomStringUtils.randomAlphabetic(25));
		ente.setTipoEnte("A");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.insertEnte(ente);
	}

	public void testUpdateEnte() throws Exception {
		Ente ente = new Ente();
		ente.setDescrizione(RandomStringUtils.randomAlphabetic(25));
		ente.setTipoEnte("E");
		ente.setIdEnte("60");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.updateEnte(ente);
	}

	public void testDeleteEnte() throws Exception {
		Ente ente = new Ente();
		ente.setIdEnte("60");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.deleteEnte(ente);
	}

	public void testInsertDirezione() throws Exception {
		Ente ente = new JUnitFinregioService().getEnteByPK("23");
		Direzione direzione = new Direzione();
		direzione.setEnte(ente);
		direzione.setDescrizione(RandomStringUtils.randomAlphabetic(20));
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.insertDirezione(direzione);
	}

	public void testUpdateDirezione() throws Exception {
		Ente ente = new Ente();
		ente.setIdEnte("4");
		Direzione direzione = new Direzione();
		direzione.setEnte(ente);
		direzione.setDescrizione(RandomStringUtils.randomAlphabetic(20));
		direzione.setProgressivo("102");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.updateDirezione(direzione);
	}

	public void testDeleteDirezione() throws Exception {
		Direzione direzione = new Direzione();
		direzione.setProgressivo("102");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.deleteDirezione(direzione);
	}
	
	public void testInsertSettore() throws Exception {
		Direzione direzione = new JUnitFinregioService().getDirezioneByProgressivo("54");
		Settore settore = new Settore();
		settore.setEnte(direzione.getEnte());
		settore.setDirezione(direzione);
		settore.setDescrizione(RandomStringUtils.randomAlphabetic(35));
		settore.setIndirizzo("via di qua");
		settore.setNumeroTelefono("0123456789");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.insertSettore(settore);
	}
	public void testUpdateSettore() throws Exception {
		Settore settore = new JUnitFinregioService().getSettoreByProgressivo("353");
		settore.setIndirizzo("via di la");
		settore.setNumeroTelefono("9876543210");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.updateSettore(settore);
	}

	public void testDeleteSettore() throws Exception {

		Settore settore = new JUnitFinregioService().getSettoreByProgressivo("353");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.deleteSettore(settore);
	}

	
	public void testInsertTipoRiferimento() throws Exception {
		TipoRiferimento tr = new TipoRiferimento();
		tr.setValore("AAAAA");
		tr.setDescrizione("ANONIMA ALCOLISTI");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.insertTipoRiferimentoNormativo(tr);
	}
	
	public void testUpdateTipoRiferimento() throws Exception {
		TipoRiferimento tr = new TipoRiferimento();
		tr.setValore("AAAAA");
		tr.setDescrizione("ANONIMA ALCOLISTE");
		tr.setIdTipoRiferimento("46");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.updateTipoRiferimentoNormativo(tr);
	}

	public void testDeleteTipoRiferimento() throws Exception {
		TipoRiferimento tr = new TipoRiferimento();
		tr.setIdTipoRiferimento("46");
		JUnitManutenzioneTabelleService s = new JUnitManutenzioneTabelleService();
		s.deleteTipoRiferimentoNormativo(tr);
	}


}
